Git 是一個開源的分布式版本控制系統,
允許我們跟蹤檔案異動,
最初目的是為更好地管理 Linux 核心開發而設計。
Git 採用了分散式版本庫的作法,
可以獨立進行版本控制,
不一定不需要依靠伺服器端軟體,
這樣使得原始碼的釋出和交流極其方便。
GitHub 是一個線上進行 source control 的工具,
它提供了一個放置我們的 code 的地方,
也允許我們與其他人在我們的項目上進行協作並且跟蹤改變,
所以如果我們的電腦發生了什麼意外,
我們只需要換一台電腦就可以找回我們的 code 了。
在 GitHub 中,我們通過建立不同的 commit 來記錄每次的更改進度,
Commit 類似於我們在遊戲中的 save point (儲存點),
當我們玩遊戲時,
我們會在不同的點保存我們當下的遊戲記錄。
在我們的專案上,
我們也可以隨時保存記錄我們的進度內容,
只需要建立不同的 commit,
就可以達成啦。
如下圖所示:
Branch 允許我們有不同分支的項目版本,
我們可以隨時在不同的支線上 push commit,
並且在一個 branch 上的更改不會改變不同分支上的改變。
Repository(Repo)分為 Local Repository 與 Remote Repository,
Local Repository 儲存我們電腦上的 code 以及各種變更,
Remote Repository 儲存我們已經上傳到別的地方的 code 和變更,
可以在 GitHub,也可以是其他服務。
在 Xcode 上,主要分為四個步驟:
Working Directory
這是所有文件在 commit 之前儲存的位置,
不管是你更改背景,還是使用 ViewController...
我們都是在 Working Directory 裡面變更項目。
Staging
在實際 commit 之前,
放置我們需要 commit 的文件,
所以 Staging 表示暫存。
Commit
然後就是建立實際的 commit 了。
Push
最後一步就是將建立的 commit push 進指定的 branch。
通常會使用 command line、 Xcode 和 GitHub GUI ~
這部分會在下一個章節討論~